/**
 * @ClassName RecursionTest
 * @Description TODO
 * @Author lwj
 * @Date 2021/7/8 22:07
 * @Version 1.0
 */
public class RecursionExercise01 {
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        System.out.println(eatPeach(1));
        long endTime = System.currentTimeMillis();
        System.out.println("耗时：" + (endTime - startTime));
    }

    /**
     * 递归求斐波那契数
     *
     * @param i
     * @return
     */
    public static int fibonacci(int i) {
        if (i < 0) {
            return 0;
        }
        if (i < 3) {
            return 1;
        }
        return fibonacci(i - 2) + fibonacci(i - 1);
    }

    /**
     * 递归求猴子吃桃
     * 有一堆桃子，猴子第一天吃了其中的一半，并再多吃一个；以后每天猴子都吃其中的一半，然后再多吃一个。
     * 当第10天时，想再吃（即还没吃），发现只有1个桃子。问：最初共有一个桃子？
     * 
     * @param i
     * @return
     */
    public static int eatPeach(int i) {
        if (i == 10) {
            return 1;
        } else if (i >= 1 && i < 10) {
            return (eatPeach(i + 1) + 1) * 2;
        } else {
            System.out.println("错误的输入");
            return -1;
        }
    }
}
